The idea is straightforward: after allowing interactions between islands, for islands that are not the same as one of the original communities, isolate the island and check to see what happens.
So after running the dynamics for 3E4 time units (i.e. 3x the length of time the dynamics in the numerical assembly runs in between assembly steps and 1.5x the length of the island dynamics), the communities that persist are 6, 7, 8, 9, 10. Examining the communities themselves, they are all the same community, albeit with different starting points.
An obvious follow-up question: how many of the communities that collapse do so to communities that we have not already seen?
[1] 12
Consolidating down to unique ending states we have the following.
We will add these new states to our catalogue of communities from the experiments. We also take the abundance after separation if the community persists to better reflect steady-state conditions.
Looking at a longer time scale, what happens if/when invasions resume? Do the hybrid communities that emerged retain the uninvadability of the parent communities?
This question should be straightforward as it is testing a step from the assembly process.
We can compare this property against some of the other properties.
Uninvadability versus whether a community was found via assembly (“on Island 1”):
Islands1
Uninvadable FALSE TRUE
FALSE 20 0
TRUE 32 30
Never invadable and assembled (good!), but about half of uninvadables are found without being assembled. What about of those that persist?
Islands1
Uninvadable FALSE TRUE
FALSE 8 0
TRUE 0 30
Which of course fills in some of the blanks. So none of the communities that persist are uninvadable if they were not an end state of the assembly process.
We check to see what happens when we treat each community as a pool for the other and perform assembly. Are the results the same as the diffusion system?
First, update the pairings.
This procedure can be done in two ways: first by directed invasion where one community is a pool for the other, and second with mutual (undirected) invasion where both communities are simultaneously pools for and invaded by each other. Note that in the directed case, we do not need to do any of the communities already marked as uninvadable with respect to the regional pools. The other communities they would be compared with are subsets of the regional pools, and so would already be checked against. We thus have matrices with three possible outcomes for entries: a set of new communities, uninvadability, or NA for unevaluated entries. In the directed case we take a row for our invader/pool and column for the invaded community, such that a community is uninvadable with respect to all other communities if its column only contains FALSE. (A community is uninvadable by itself for sake of argument.)
Here, we check to see if the networks created by each community (hybrid or otherwise) has mutualism embedded in it.
The first obvious step is to make a gallery of the food webs. The reader will notice the upside-down ‘T’ shape to the plots.
–>
We will also need to recreate code from the file LawMorton1996-NumericalTables-Parallel.Rmd.
NULL
NULL
NULL
NULL
NULL
Perhaps the most obvious way to measure indirect effects of one node on another is to consider the matrix power. The entries in the first power \(M^1\) represent the direct (un-normalised) effects of species \(j\) (column) on species \(i\) (row). (Multiply the interactions by the abundance column vector on the right to see why I use this convention.) Then the entries of \(M^n\) represent the effects of species \(j\) on species \(i\) after a path of exactly \(n\) steps. https://doi.org/10.1016/j.ecocom.2007.05.002 and https://doi.org/10.1111/ele.12638 both recommend essentially to normalise this score and sum it across the first so many (3 and 5 respectively) steps. The latter uses it for qualitative feeding matrices, while the former suggests biomass flow rather than the interaction matrices we are using I believe.
Some notes before we begin with this. The units are a bit wonky if we are not paying attention; the interaction matrix itself before multiplying by abundance has units inverse time-density. So instead of taking the interaction matrix \(A\) directly, we will instead take \(B:b_{i,j} = a_{i, j} x_j s\) where \(x\) is an abundance (i.e. density) and \(s\) represents a time unit. This is a bit strange, since I am not doing the obvious vector operation as I want to preserve the dimensionality. This can be thought of as integrating the matrix for one time unit instead to remove that dimension, but this makes the result invalid if the system is not in a steady-state (as the system would then have a time dependence rather than a constant integral).
Next, it is not immediately obvious (to me at least) what the correct way to measure the influence of one species on another is. I.e. should one take \(\sum_{i = 1}^{n} M^n\)? Should there be penalties with distance?
Indeed, how do we compare the effects (direct or indirect) with their influence on the system itself? That is, we can certainly calculate something, but how can we be certain that what we think we are calculating and what we are actually calculating are the same thing? For example, we would expect direct and indirect effects to be present as deviations from the steady-state are resolved, but how do we extract the indirect effects and compare with, e.g., the matrix powers?
[1] \Perturbation vs 1st Power:\
[1] 0.296493
[1] \Perturbation vs 2nd Power:\
[1] -0.2894795
[1] \Perturbation vs 3rd Power:\
[1] -0.5167285
[1] \Perturbation vs Sum of 1:3 powers:\
[1] 0.2579495
This turns out to be fairly sensitive to the timescale considered (1 time unit versus 100 for instance), but not obviously so for the (absolute rather than relative) perturbation size (1 vs 0.1 or 0.01). Changing from absolute to relative greatly reduces the correlation to values between -0.2 and -0.05 roughly for values of 0.01, 0.001, and 0.0001.
As for how we can use the matrix, one easy set of summary statistics is to look for the proportions of various relationship types.